package com.sugon.dao;

import com.sugon.entity.ModuleTypeEntity;
import com.sugon.modules.mold.model.vo.MoldHealthyStatusVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 模具类型Dao
 *
 * @author sugon
 * @date 2019-08-06 16:31:41
 */
public interface ModuleTypeDao extends BaseDao<ModuleTypeEntity> {
    /**
     * queryObjectByCode
     *
     * @param code 模具CODE
     * @return
     */
    ModuleTypeEntity queryObjectByCode(@Param("code") String code);

    /**
     * 根据模具类型父ID获取所有的子类型ID列表
     *
     * @param parentId
     * @return
     */
    List<String> getMouldTypeByParentId(@Param("parentId") String parentId);

    /**
     * 加载模具类别&模具组成的树
     *
     * @param workshopId   车间ID
     * @param productModel 模具机型
     * @param moldStatus   模具状态
     */
    List<MoldHealthyStatusVO> loadMoldTypeTree(@Param("workshopId") String workshopId, @Param("productModel") String productModel, @Param("moldStatus") Integer moldStatus);

    /**
     * 加载模具类别&已关联的模具位置组成的树
     *
     * @param moldTypeId 模具类型ID
     */
    List<ModuleTypeEntity> loadMoldTypePositionTree(@Param("moldTypeId") String moldTypeId);

}
